package com.fzk.router;

import io.netty.handler.codec.http.FullHttpRequest;

import java.util.List;
import java.util.Map;

/**
 * TODO 引入业务线程池
 *
 * @author fzk
 * @datetime 2023-04-11 00:02:38
 */
@FunctionalInterface // 函数式接口
public interface ApiHandler {
    /**
     * controller
     *
     * @param ctx     netty的连接上下文
     * @param request 请求
     * @param params  参数, 仅包含来自uri的查询参数以及form表单请求体参数, 对于json格式请求体参数需要手动解析
     * @throws Exception 可能抛出的异常
     */
    void handle(MyCtx ctx, FullHttpRequest request, Map<String, List<String>> params) throws Exception;
}
